package com.leetcode.demo3Solution.java;


//打家劫舍
public class demo198 {
    public static void main(String[] args) {
        int[] nums={2,7,1,7,3,10};
         System.out.println("最大打劫数"+rob(nums));
    }
    public static int rob(int[] nums) {

        // 一 、不但是比较数组奇数和和偶数和  傻了
          /*if(nums.length == 1) return nums[0];
          int jishu=0;
          int oushu=0;
          for (int i=0;i<nums.length;i++ ){
              if(i%2 == 1)
              {
                  oushu+=nums[i];
              }
              else {
                  jishu+=nums[i];
              }
          }
          if(oushu>jishu)
              return  oushu;
          else
              return  jishu;*/


        // 动态规划  db[i]=Math.max(db[i-1],db[i-2]+nums[i-1])
     /*    int length=nums.length;
         if(length == 0)
             return 0;
         int[] db=new int[length+1];
         db[0]=0;
         db[1]=nums[0];
         for (int i=2;i<=length;i++){
             db[i]=Math.max(db[i-1],db[i-2]+nums[i-1]);
         }
        return db[length];
    }*/
     //动态规划优化
        int len=nums.length;
        int[] db=new int[len+2];
        for(int i=0;i<len;i++){
            db[i+2]=Math.max(db[i]+nums[i],db[i+1]);
        }
        return db[db.length-1];
    }
}
